package com.kaili.pojo.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.ToStringSerializer;
import com.kaili.pojo.entity.HsEwbsStowageSub;
import com.kaili.utils.DateUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author xjh
 * @ClassName EwbQueryVO
 * @Description 托运单查询实体类
 * @Date 下午5:20 18-5-23
 * @Version 1.0
 */
@Data
public class EwbQueryVO {

    @ApiModelProperty("托运单流水id")
    @JSONField(serializeUsing = ToStringSerializer.class)
    private String operationId;
    @Excel(name = "托运单号", orderNum = "1")
    @ApiModelProperty("托运单号")
    private String ewbNo;

    @ApiModelProperty("开单时间")
    private Date ewbDate;

    @Excel(name = "开单时间", orderNum = "2")
    @ApiModelProperty("开单时间string格式")
    private String ewbDateStr;

    @Excel(name = "发货人", orderNum = "3")
    @ApiModelProperty("发货人")
    private String sendCustomerName;

    @ApiModelProperty("发货人id")
    private Integer sendCustomerId;

    @ApiModelProperty("发货人手机号")
    private String sendCustomerPhone;

    @ApiModelProperty("发货人公司")
    private String sendCustomerCompany;

    @ApiModelProperty("发货人地址")
    private String sendCustomerAddress;

    @ApiModelProperty("收货人")
    private String receiveCustomerName;

    @ApiModelProperty("收货人id")
    private Integer receiveCustomerId;

    @ApiModelProperty("收货人手机号")
    private String receiveCustomerPhone;

    @ApiModelProperty("收货人公司")
    private String receiveCustomerCompany;

    @ApiModelProperty("收货人地址")
    private String receiveCustomerAddress;

    @Excel(name = "货物", orderNum = "4")
    @ApiModelProperty("货物名称")
    private String goodsName;

    @Excel(name = "包装", orderNum = "5")
    @ApiModelProperty("包装")
    private String packageName;

    @Excel(name = "件数", orderNum = "6")
    @ApiModelProperty("件数")
    private Integer totalPiece;

    @ApiModelProperty("原始库存件数,给前端用的")
    private Integer oldStockPiece;
    @ApiModelProperty("当前可用最大库存,给前端用的.")
    private Integer maxStockPiece;
    @ApiModelProperty("库存件数")
    private Integer stockPiece;

    @ApiModelProperty("配载件数")
    private Integer stowagePiece;

    @Excel(name = "重量(KG)", orderNum = "7")
    @ApiModelProperty("重量")
    private double totalWeight;

    @ApiModelProperty("库存重量")
    private BigDecimal stockWeight;

    @ApiModelProperty("配载重量")
    private double stowageWeight;

    @Excel(name = "体积(m3)", orderNum = "8")
    @ApiModelProperty("体积")
    private double totalVol;

    @ApiModelProperty("库存体积")
    private BigDecimal stockVol;

    @ApiModelProperty("配载体积")
    private double stowageVol;

    @Excel(name = "目的地", orderNum = "9")
    @ApiModelProperty("目的地")
    private String cityName;

    @ApiModelProperty("目的地id")
    private Integer cityId;

    @ApiModelProperty("寄件网点id")
    private Long sendSiteId;

    @ApiModelProperty("寄件网点名称")
    private String sendSiteName;

    @Excel(name = "到站网点", orderNum = "10")
    @ApiModelProperty("到站网点")
    private String dispatchSiteName;

    @ApiModelProperty("到站网点id")
    private String dispatchSiteId;


    @Excel(name = "签回单", orderNum = "11")
    @ApiModelProperty("签回单")
    private String rewb;


    @Excel(name = "运费", orderNum = "12")
    @ApiModelProperty("运费")
    private double totalFreightCharge;

    @Excel(name = "配载时间", orderNum = "13", format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("配载时间")
    private Date loadingTime;

    @Excel(name = "操作员", orderNum = "14")
    @ApiModelProperty("操作员")
    private String operatorName;

    @ApiModelProperty("货物列表")
    private List<GoodsDetailVO> goodsList;

    @ApiModelProperty("备注")
    private String remark;


    @ApiModelProperty("条形码")
    private String barcodeMsg;


    @ApiModelProperty("总费用")
    private BigDecimal totalAmount;

    @ApiModelProperty("是否签回单")
    private Integer isRewb;

    @ApiModelProperty("代收货款")
    private BigDecimal codCharge;

    @ApiModelProperty("代收货款手续费")
    private BigDecimal receiveSendCodCharge;

    @ApiModelProperty("保价金额")
    private BigDecimal insuredAmount;

    @ApiModelProperty("保费")
    private BigDecimal dobInsuranceFee;

    @ApiModelProperty("业务费")
    private BigDecimal businessCharge;

    @ApiModelProperty("派送费")
    private BigDecimal sendCharge;

    @ApiModelProperty("接货费")
    private BigDecimal deliveryCharge;

    @ApiModelProperty("是否易碎品 ")
    private BigDecimal isFragile;

    @ApiModelProperty("结算方式id")
    private Integer settleModeId;

    @ApiModelProperty("支付方式id")
    private Integer payModeId;

    @ApiModelProperty("派送自提id")
    private Integer pickGoodsModeId;

    @ApiModelProperty("托运单下子单")
    private List<HsEwbsStowageSub> subList;

    private Integer sendCountyNum;

    private Integer sendCityNum;

    private Integer sendProvinceNum;

    private String sendCountyName;

    private String sendCityName;

    private String sendProvinceName;

    private String receiveCountyNum;

    private String receiveCityNum;

    private String receiveProvinceNum;

    private String receiveCountyName;

    private String receiveCityName;

    private String receiveProvinceName;
}
